Technote 1102

Mac OS 8

By John Montbriand
Apple Developer Technical Support (DTS)

Version 1.8

This Technote discusses changes and corrections in the next generation of the Mac OS Operating System,
Mac OS 8. This system follows Mac OS 7.6.1 and contains several new and revised features. Mac OS 8 offers improvements and/or new features in the following areas:

Document History

1.8 Updated discussion of both FInfo and FXinfo records and the DInfo and DXInfo records in the Other Important Finder 8 Facts part of the Finder 8.0 section. -JM, 8/19/99

1.7 Updated and expanded the details and samples presented for Apple Event Changes in the Finder 8.0 section. -AFB, 3/29/99

1.6 Fixed broken Apple Location Manager and Appearance Manager SDK links. -IK, 8/6/98

1.5 Fixed broken links in the QuickDraw GX section. Corrected the 'fntb' drag flavor description in the Finder:New Drag Flavors section ('Preventing Folders from Springing Open' was changed to 'Disabling Finder Tracking Behavior'). And XFInfo spelling changed to FXInfo. -JM, 12/11/97

1.3 Documented a crashing bug with UTVolCacheWriteIP under in the File System Manager section. -Quinn, 6 Nov 1997

1.2 New HideOnSwitch flag defined along with it's accessor routines, GetHideOnSwitch and SetHideOnSwitch, in the Process Manager section. -JM, 10/6/97

1.1 QTVR version changed to 2.0.1, added information about the flavorNotSaved flag in the Finder:New Drag Flavors section, added "Cleanup at Startup" folder to Folder Manager section with developer note about its use. -JM, 9/11/97

Contents


Hardware Requirements

Mac OS 8 can be installed on any Mac OS compatible computer that has either a PowerPC or a 68040 processor (including 68040 machines with a PowerPC upgrade card). PowerPC cards installed in 68030 computers are not supported, and Mac OS 8 does not support machines upgraded with either a 68030 or a 68040 upgrade card.


Installation

Install Mac OS 8

This is an upgraded version of the Install Mac OS application provided with Mac OS 7.6 and 7.6.1. The new Install Mac OS application provides an enhanced user experience guiding the user through all of the steps required to install the new system software. Install Mac OS requires System 7.0 or later.


Finder 8

Finder 8 is a replacement for the System 7 Finder, offering a multi-threaded interface that allows users to proceed with many file-oriented tasks simultaneously. In addition, many of the new user interface elements, such as Contextual Menus, present in Mac OS 8 are utilized by the new Finder. Other additions to the user interface experience provided by the Finder are:

Apple Event Changes

Reopen Application Apple Event

Finder 8 now sends running applications a reopen application Apple event (kAEReopenApplication == 'rapp') whenever the user reopens the application. The purpose of the reopen application Apple event is to allow the application to provide visual feedback to the user.

User testing has indicated that when a user double-clicks on an application's icon, or in some other way causes the application to be launched, they expect to see some visual feedback that the application has in fact started and is ready for use. This visual feedback is often a new untitled document window or a document creation dialog when a document file has not been opened. Users associate this feedback with the action of double-clicking on the application icon.

It was discovered that when users double-clicked on the icon for a running application, and there was no visual feedback from the application (such as a document window or tool pallet), they would often think that something was wrong because nothing happened. Testing showed that the menu bar change (including the application menu icon) when the running application came to the front was not enough of a visual clue for novice users. They didn't realize that the application whose icon they had just opened was in the front ready for their use.

The idea behind sending the reopen application Apple event to the running application is to let the application know that the user has attempted to open it. When handling the reopen application Apple event, the application has an opportunity to provide visual feedback to the user. What the application does will depend on the application itself, and on the current state of the application. The action taken should also take into consideration any startup options the user has set in the preferences for the application.

In general, if no windows are open in the application, the action taken should be similar to what happens when the open application (kAEOpenApplication == 'oapp') Apple event is received after the application is launched. This could be opening an untitled document, or perhaps displaying a document creation dialog. If the application already has windows open -- be they document, tool pallet, dialog, etc. -- this will most likely be enough feedback and nothing further needs to be done.

Application frameworks should provide support for the reopen application Apple event. In many cases, the framework will be able to leverage the support it already provides for the open application Apple event. It could, for example, provide a global flag to indicate that the first Apple event has been handled at application startup time. After the flag is set, the open application Apple event handler would behave as the reopen application Apple event handler.

Determining Item at Screen Location

Finder 8 provides a mechanism which allows applications to determine what icon or window, if any, is located at a particular point on the screen. You ask for this information by sending a get data Apple event (kAEGetData == 'getd')to the Finder. The direct parameter for the event must be an object specifier describing the item type you are looking for and the point at which to check for the item. If there is no icon or window at the point the event will return an errAENoSuchObject (-1728) error.

The following AppleScript scripts show how to get the icon or window at a location.


	      tell application "Finder"
	            item {xLoc, yLoc } -- returns a file object reference if an icon is under the point
	            window {xLoc, yLoc } -- returns container reference if a window is under the point
	      end tell
	

The reply to the events above are Finder style references which an AppleScript script can easily work with, but which are more difficult for an application to use. You can add a keyAERequestedType parameter to the event to tell the Finder to return its reply in the form you prefer to work with. Also, when checking for windows at a particular location you are likely to be interested in the folder the window belongs to. Here is how these changes would look in AppleScript.


	      tell application "Finder"
	            item {xLoc, yLoc } as alias -- alias for the icon under the point
	            folder of window {xLoc, yLoc } as alias -- alias for folder window under the point
	      end tell
	

There is a third key form, typeWildCard, that you can use when asking the Finder for the item at a particular location. An event with this key form will cause the Finder to first check for an icon at the specified location. If no icon is found, the Finder then checks for a window. Because the result can be either an icon or container reference you cannot add a keyAERequestedType parameter to the event. If you use this key form you must send a second get data event to get an alias or FSSpec for the item found at the location.


	      tell application "Finder"
	            anything {xLoc, yLoc } -- returns a file item or container reference
	            anything { xLoc, yLoc} as alias -- alias for icon under point, error for window
	            folder of anything {xLoc, yLoc } as alias -- alias for window, error for icon
	      end tell
	

The contents of the object descriptor sent as the direct object for the get data event will contain the following data.

Key Value Description
keyForm formAbsolutePosition
keyAEContainer typeNull
keyData typeAEList
long x location
long y location
keyAEDesiredClass One of the following values To get this type of item
cObject icon at location
cWindow window at location
typeWildCard icon or window at location

Intercepting Documents

Before the Finder opens one or more documents using an application, it sends a 'fopn' Apple Event from the Finder Event suite (kAEFinderEventSuite 'fndr'). Developers wishing to override the Finder's normal document handling facilities can install a global Apple Event handler to intercept these events and direct the Finder to discontinue processing the open command. The Finder event 'fopn' contains the following parameters:

A parameter with keySelection and keyData of object specifier for the selected item or an AERecord of object specifiers for the selected items (if more than one item is in the selection being opened).

An optional parameter with the key 'APPL' and keyData containing an object specifier for the application the Finder plans to use to open the documents. There are two different cases where this optional parameter will be present. First, when documents are dropped directly into an application, the application will appear in this parameter and the Finder will send the 'fopn' Apple event only once. And second, if one or more documents are double-clicked or opened from the file menu, then the Finder will send the 'fopn' event twice, both times specifying the entire selection, once without the 'APPL' parameter and once with the 'APPL' parameter when the application Finder plans to use has been determined.

Developers wishing to override the Finder's normal document handling behavior must install a global Apple Event handler for the 'fopn' Apple event. Once installed, the handler can distinguish between the files it wishes to process and the files the Finder should process normally by returning a Boolean value in the reply event. A value of true in the keyAEData parameter of the reply tells the Finder to discontinue all processing of the open request, and a value of false tells the Finder to continue processing the open request as it normally would.

If there are several documents in the selection being opened by the Finder, it is possible that the documents will not be all of the same type. As such, the entire group may not be appropriate for use in one particular application. In these cases, the Finder groups the documents by type and sends each group separately (first without the 'APPL' parameter, and once with the 'APPL' parameter). For example, if a selection contains both a SimpleText document and a MoviePlayer document, then the Finder first sends a 'fopn' event with the SimpleText document followed by a 'fopn' event with both the SimpleText document and the 'APPL' parameter referring to the application SimpleText. Finder would then repeat the same process for the MoviePlayer document using the MoviePlayer application in the 'APPL' parameter. This behavior of the 'fopn' Apple Event allows your handler to override the processing of particular document types while allowing the Finder to open other documents in the normal way.

NOTE
Since the Finder discontinues all processing of documents if the global Apple Event handler for the 'fopn' Apple Event returns a Boolean value of true, any such handler should provide appropriate user feedback for any exceptional circumstances that may arise while attempting to open the files (failed opens, insufficient memory, etc.).

COMPATIBILITY NOTE
This event is not present in the Finder's AETE dictionary, and as such it is not officially supported by the Finder and may not be present in future versions of the Finder.

SendToSelf Apple Events

Beginning with Finder 8, all Apple events are handled in separate threads. When the Finder receives any high-level event (including Apple Events), it immediately suspends the event, creates a Thread Manager task where the event will be handled, and schedules the task for execution. Once the thread has completed execution and wishes to return a value, Finder resumes the Apple Event.

Products patching the system and sending Apple Events to the Finder with the send mode kSendToSelf while the Finder is the current process may require revision. In this case, AESend will return the error errAEEventTimeout, which requires special handling. The caller should handle this error by periodically attempting to extract data from the reply event. Also, the caller should be sure to yield time to the System so the Finder can run and process the event. When the Finder completes processing of the event, the reply will contain the requested data.

AppleScript Changes

The AppleScript facilities provided by the Finder have changed. All of the scripting services formerly provided by the Finder are still present in the operating system; however, some of the facilities provided by the Finder have been moved to the appropriate control panels.

Network Commands Moved to Control Panels

The Finder no longer handles creation or manipulation of network users or groups, nor can the Finder be asked to retrieve information about connected users or file sharing activity. These scripting features are now handled by their respective control panels, which can be targeted by scripts. Developers who have created scripts that instruct the Finder to either create or modify Users or Groups or query the Finder about file sharing details require modification for compatibility with Mac OS 8. In most cases, such modification will only require a change in the target application from the Finder to either the File Sharing control panel or the Users & Groups control panel.

NOTE
For compatibility with the majority of scripts utilizing the network facilities once provided by the Finder, the Finder continues to support commands for turning on and off file sharing.

Revised Property Values

In order to correct an incompatibility with the 'info for' scripting addition, the Finder has changed the values of several properties. Specifically, the values of the properties 'folder', 'creation date', 'modification date', 'locked', and 'file type' have changed. Compiled scripts compiled under Finder 7 will continue to run without requiring recompilation. However, if these same scripts are opened with the ScriptEditor under Finder 8, all former references to these properties will have the text 'obsolete' appended to the property name indicating the older property value. These scripts will continue to compile and run for both Mac OS 7 and Mac OS 8; however, if the text 'obsolete' is removed, indicating the newer property value, then the compiled script will only be run Finder 8.

COMPATIBILITY NOTE
Scripts utilizing the new property values that have been compiled under Finder 8 will not run with Finder 7 as the new property values will not be recognized by Finder 7. To create a script that will run with both Finder 7 and Finder 8, devlopers should either compile and save the script with Finder 7, or they should leave the text 'obsolete' in place when compiling with Finder 8.

Application Processes

Under Finder 7, requests for 'application processes' result in a collection of 'applications' which is actually data of type typeProcessSerialNumber. For example, under Finder 7, 'application processes' might return {application "Script Editor", application "Stickies"} and 'first application process' might return 'application "Script Editor "'.

Under Finder 8 the behavior of 'application processes', 'desk accessory processes', and 'processes' has changed to always return a list of processes. For example, the same script under Finder 8 still returns {application "Script Editor", application "Stickies"} because AppleScript is asking for the items as typeProcessSerialNumber. However, in this case, 'first application process' under Finder 8, will return 'process "Script Editor"' which is a different data type. Developers wishing to obtain the same data type for both Finder 7 and Finder 8 should use the query ' first application process as «class psn »' in their scripts, which will return the value 'application "Script Editor "' with both Finders.

New Drag Flavors

Finder 8 introduces four new drag flavors -- 'fdtt', 'fntb','clnm' and 'clfn' -- for client applications who wish to support dragging to the Finder. The appearance of any of these new flavors attached to any drag item in a DragReference will direct the Finder to provide the following behaviors when accepting the drag:

Limiting Valid Drop Targets to the Trash

Adding the 'fdtt' (drag to trash) flavor to any item in a DragReference tells the Finder not to accept the drag anywhere except to the Trash icon. No other icons of windows will highlight. If the 'fdtt' flavor appears anywhere in a DragReference, then it applies to all of the items in the DragReference. The 'fdtt' flavor provides an opportunity for applications to utilize the 'drag to trash' model for, say, allowing users to delete selections by dragging them to the trash. 'fdtt' flavors do not contain any data.

Disabling Finder Tracking Behavior

Adding the 'fntb' (no tracking behavior) flavor to any item in a DragReference instructs the Finder to ignore the drag entirely. Neither windows or icons will highlight to accept drags, nor will any spring-opening occur in the Finder when the 'fntb' flavor is included in a DragReference. If the 'fntb' flavor appears anywhere in a DragReference, then it applies to all of the items in the DragReference. 'fntb' flavors do not contain any data.

Controlling Clipping File Names

The 'clnm' and 'clfn' flavors have been added to provide applications with better control over the naming of clipping files. These flavors are used by the Finder in the following steps that it uses to determine the name for a clipping file:

  1. If the item contains a 'clnm' flavor (flavorTypeClippingName), then this value (a pascal string) is used in the template "^0 clipping" to name the file. This is the preferred method for new applications. Usually, the application should provide the name of the document from which the clipping was dragged.
  2. If the file name was not assigned in the above and the item contains a 'clfn' flavor, then this value (a pascal string) is used as the complete file name.
  3. If the clipping file name was not established by either of the above methods, then the flavors are examined in order until a 'TEXT', 'PICT', or 'snd ' flavor is found. If one of these flavors is found, then the clipping file is named either "text clipping", "picture clipping", or "sound clipping" respectively.
  4. as a last resort, the name "untitled clipping" is used.
  5. If the name assigned by the above steps is already in use, then a number is appended to the name (or appended and incremented until a unique name is established). Also, if the resulting name is longer than 31 characters, the name is truncated in the middle and an ellipsis is added. For example, "A Very Long Doc... clipping 100".
NOTE
Developers utilizing the 'fdtt', 'fntb', 'clnm', and 'clfn' flavors are not required to create additional drag items to attach them to when including them in a DragReference. To request the behaviors defined for each of these flavors from the Finder, simply attach them to any drag item included in the DragRef; and, as these special flavors define behaviors and contain no data, when adding any of these flavors to a DragReference the flavorNotSaved flag must be set in the FlavorFlags parameter in calls to AddDragItemFlavor. The Finder will provide the behaviors defined for each of the new flavors if they appear anywhere in the DragReference.

Other Important Finder 8 Facts


Inside the System file

The system file contains routines and resources responsible for running the computer. This section describes new features and corrections built into the System file. These items are always present under Mac OS 8, even when shift key is held down at system startup.

Native CPU Family Gestalt

A new Gestalt selector gestaltNativeCPUfamily ('cpuf') has been added that will always return the CPU family of the current PowerPC processor. The new gestaltNativeCPUfamily selector returns the same values as the gestaltNativeCPUtype ('cput'), but it does not distinguish between variants within the same processor family. For example, the following table illustrates the difference between the new gestaltNativeCPUfamily selector and the older gestaltNativeCPUtype selector:

PowerPC Processor

gestaltNativeCPUfamily
in Mac OS 8

gestaltNativeCPUtype
since System 7.5

601

gestaltCPU601

gestaltCPU601

603

gestaltCPU603

gestaltCPU603

603e

gestaltCPU603

gestaltCPU603e

603ev

gestaltCPU603

gestaltCPU603ev

604

gestaltCPU604

gestaltCPU604

604e

gestaltCPU604

gestaltCPU604e

This new selector allows developers to test for the presence of particular family-specific PowerPC processor features without having to know all of the members of a CPU family.

Alias Manager

The Alias Manager is the part of the operating system that communicates with the file system to maintain alias records that are used to keep track of file and folder locations. The Alias Manager does not create Finder alias files; the Finder creates these files and stores alias records created by the Alias Manager in them.

MatchAlias wasn't checking for off-line volumes when kARMNoUI was specified among its flag parameters. This could have lead to some superfluous alerts requesting the off-line disks when the Alias Manager attempted to access the volume information. The Alias Manager now disables the File Manager's "disk switch alert" when the kARMNoUI rule is specified.

Related Materials:

ATA Manager 4.0

ATA stands for AT-Attachment, and is a bus protocol used by the Mac OS for communications with IDE devices such as Hard Disks, CD ROMs, and other IDE devices in some Mac OS compatible computer models. Machines with installed IDE hard drives or ATAPI CD ROM drives use the ATA Manager (this includes most Performas and PowerBooks).

The routine ATA_RegAccess function has been updated to work correctly on PowerBook 3400 machines.

Code Fragment Manager 68K (CFM-68K) 4.0

The 68K Code Fragment Manager (CFM-68K) is the 68K implementation of the Code Fragment Manager. The 68K Code Fragment Manager is the part of the Mac OS on 68K machines that loads 680x0 code fragments into memory and prepares them for execution. CFM-68K is not appropriate for use on PowerPC machines.

Collection Manager 1.1

The Collection Manager provides a data storage and retrieval service usable from applications for the purposes of maintaining small collections of variable sized data elements. This facility has been moved from QuickDraw GX to the Toolbox and is now included in the System file. The Mac OS 8.0 version of the Collection Manager contains the following corrections:

COMPATIBILITY NOTE
Developers requiring the Collection Manager must link with CollectionsLib under Mac OS 8 as it will not be accessible via the QuickDraw GX library. The Mac OS 8.0 version of CollectionsLib includes glue for both CFM-68K and PowerPC CFM callers. In Mac OS 8, the gestaltCollectionMgrVersion selector returns version 1.1 (0x01108000).

Related Materials:

Communications Toolbox

The Communications Toolbox provides an API for basic communications and connection services.

A problem in the StandardNBP routine where it was possible for a list structure exceeding 32k to be allocated when a large number of names were requested has been corrected.

Related Materials:

Control Manager

The Control Manager provides facilities for drawing and processing user interaction with controls drawn on the screen.

The new Appearance Manager extends the functionality of the Control Manager. See the Appearance Manager documentation and SDK for further information.

Related Materials:

Desktop Manager

The Desktop Manager provides routines for accessing desktop database files on Mac OS volumes.

Device Manager

The Device Manager provides a standard programming interface for communications between applications and code that is designed to communicate with particular hardware devices (although some "device drivers" do not actually drive devices).

Dialog Manager

The Dialog Manager provides automated user interface facilities for managing user interactions with dialog windows.

COMPATIBILITY NOTE
Developers drawing an outline around the default button in dialog windows using the older black and white FrameRoundRect method should modify their code for compatibility with the new Appearance facilities. To display a dark outline around the default button in a dialog box, call the routine SetDialogDefaultItem to ensure that the dark outline drawn around the default button has the proper appearance.

Related Materials:

Disk Initialization Package

The Disk Initialization Package provides formatting services for disks.

The Disk Initialization Package now has platinum Appearance.

Related Materials:

FKEYs

FKEYS are executable code resources, stored in the system file, that are invoked by typing a command-shift-number combination, where the number is equal to the resource ID of the FKEY resource.

Under Mac OS 7.6 and Mac OS 7.6.1 the FKEY 3 & FKEY 4 routines would fail to capture the screen if At Ease was installed but inactive. This problem has been corrected.

Related Materials:

File Manager

The File Manager provides services for storage and retrieval of disk based information.

File System Manager

The File System Manager manages the use of foreign file systems. The File System Manager provides a general means by which foreign file systems can be installed, identified, and interfaced to the Operating System.

Folder Manager

The Folder Manager provides facilities for locating "special" folders like the Extensions folder in the System Folder without relying on the names of those folders. This aids application localization.

Developers can now register their own special folders that can be accessed using the FindFolder routine. Also, facilities have been added so developers can direct future versions of the Finder to auto-route certain file types into directories they register with the Folder Manager. Interested developers should refer to the Folder Manager Technote for more information.

The Folder Manager now correctly gives ownership and blank (inherited) access privileges to folders it creates on remote server volumes.

Folder Name

Type

Location

New?

Contents

System Folder

'macs'

it is the blessed folder

 

System files and folders

Desktop Folder

'desk'

in the root directory

 

The Desktop

Trash

'trsh'

in the root directory

 

The Trash

Network Trash Folder

'empt'

in the root directory

 

The Trash on network volumes

PrintMonitor Documents

'prnt'

in 'System Folder'

 

PrintMonitor documents

Startup Items

'strt'

in 'System Folder'

 

items opened at startup

Apple Menu Items

'amnu'

in 'System Folder'

 

items in the Apple Menu

Control Panels

'ctrl'

in 'System Folder'

 

control panels

Extensions

'extn'

in 'System Folder'

 

system extensions

Fonts

'font'

in 'System Folder'

 

Fonts and Font Suitcases

Preferences

'pref'

in 'System Folder'

 

Preferences files

Temporary Items

'temp'

in the root directory

 

Temporary files

Shutdown Items

'shdf'

in 'System Folder'

 

Items opened at shutdown

Cleanup at Startup

'flnt'

in the root directory

yes

items deleted at startup

Application Support

'asup'

in 'System Folder'

yes

Application-specific files

Extensions (Disabled)

'extD'

in 'System Folder'

yes

Disabled System Extensions

Control Panels (Disabled)

'ctrD'

in 'System Folder'

yes

Disabled control panels

System Extensions (Disabled)

'macD'

in 'System Folder'

yes

Disabled System Extensions

Startup Items (Disabled)

'strD'

in 'System Folder'

yes

Disabled Startup Items

Shutdown Items (Disabled)

'shdD'

in 'System Folder'

yes

Disabled Shutdown Items

Applications

'apps'

in the root directory

yes

Application programs

Printer Descriptions *

'ppdf'

in 'System Folder'

yes

Printer description files

Editors

'oded'

in 'System Folder'

yes

OpenDoc Editors

Text Encodings

in 'System Folder'

yes

Text encoding extensions

Stationery

'odst'

in the root directory

yes

OpenDoc Stationery

Internet Plug-Ins

in 'System Folder'

yes

Internet related plug-in files

Control Strip Modules

'sdev'

in 'System Folder'

yes

Control Strip Modules

Assistants

in the root directory

yes

Configuration assistants

Utilities

in the root directory

yes

Assorted utilities

Contextual Menu Items

'cmnu'

in 'System Folder'

yes

Contextual Menus Plug-ins

Scripting Additions

in 'System Folder'

yes

AppleScript Extensions

Printer Drivers

in 'System Folder'

yes

Printer Drivers

Note:
* The LaserWriter driver (versions 8.5.1 and before) does not take advantage of the 'ppdf' FindFolder feature and still only looks in the Extensions:Printer Descriptions folder for PPDs. This will be fixed in a future release of the LaserWriter 8 driver.

Finder 8 only creates a subset of the folders listed above (namely: "Apple Menu Items", "Control Panels", "Extensions", "Fonts", "Preferences", "Shutdown Items", and "Startup Items"). Other folders are created as they are needed.

Special new folders for developers:

The Application Support Folder. The new "Application Support" folder (type 'asup') is located in the System Folder. This folder is designated as the location where applications should place their private extensions and plug-in files. Applications and third-party extensions can install any files or folders required by their software in this folder. Apple does not define the contents of this folder.

The Internet Plug-Ins Folder. The new "Internet Plug-Ins" folder (type ) in the System Folder is designated as a common location for the storage of plug-ins for applications such as web browsers.

Cleanup at Startup. The new "Cleanup at Startup" folder provides an alternative location for developers to store their temporary files. Leftover items located in the traditional temporary files folder (type 'temp' ) are moved to the trash at system startup which may not always be desirable and can be a nuisance to users. Most often, this situation will occur if a application creates several temporary files is aborted and has no chance to delete them. To avoid this condition developers can place their temporary files in the "Cleanup at Startup" folder (type 'flnt' ) who's contents are automatically deleted at system startup. Developers should not depend on this facility for deleting their temporary files; rather, it should be used to ensure unusable temporary files will not appear in the trash after system startup.

Related Materials:

Font Manager

The Font Manager provides system wide services for the retrieval of symbols and glyphs for display of textual information.

COMPATIBILITY NOTE
The default system font has changed and the system font can be selected by the user. The original system font, Chicago, is still present in the system file; however Mac OS 8 installs with Charcoal as the system font. Developers shouldn't make any assumptions regarding the system font in their applications. Namely, don't assume that the system font contains a bitmap character set for a particular font size.

Related Materials:

Help Manager

The Help Manager is responsible for the drawing and display of Help Balloons and the Help menu.

COMPATIBILITY NOTE
To avoid displaying two menus entitled "Help" in the menu bar, developers should move any menu commands from their own help menus into the Help Manager's help menu.

Related Materials:

List Manager

The List Manager is the part of the operating system providing standard user interface facilities for drawing and managing user interaction with lists of items.

Under some circumstances, calls to LSize could mistakenly validate a part of the window containing the list outside of the list's boundary rectangle, resulting in incorrect drawing during the update event that following the call to LSize. This problem has been corrected.

Related Materials:

Memory Manager

The Memory Manager is the part of the operating system responsible for managing memory allocation requests.

Menu Manager

The Menu Manager is the part of the operating system responsible for both drawing the menu bar and drawing menus and pop-up menus on the screen while the mouse is being held down.

COMPATIBILITY NOTE
Developers displaying pop-up menus in applications should use the popup control rather than calling the menu manager directly to ensure their pop-up menus are displayed correctly when system-wide appearance is enabled.

Related Materials:

ObjectSupportLib 1.2.1

ObjectSupportLib provides routines for AppleScript extensions and applications providing AppleScript services.

Process Manager

The Process Manager shares the processor among multiple applications. Mac OS 8 includes the following new features in the Process Manager:

Script Manager 8.0

The Script Manager provides facilities for display and retrieval of number, date, time, and other information in a language-independent way.

PowerPC implementations of the routines CharacterByteType, CharacterType, TransliterateText, and FillParseTable have been added.

Related Materials:

SCSI Manager

The SCSI Manager is the part of the operating system responsible for communications with connected SCSI devices.

A problem where large volumes (larger than four gigabytes) were not being mounted correctly at startup has been corrected. Some of the disks on which these volumes reside were taking too long to spin up during the first scan of the SCSI bus and were not being recognized by the system. The system now scans the bus again later in the boot cycle looking for volumes that missed the first scan.

Related Materials:

Serial Driver

The Serial Driver provides serial communications services for either the printer port or the modem port using the Device Manager API. The Mac OS 8 Serial Driver includes the following changes:

Sound Manager

The Sound Manager provides facilities for playback and recording of digitized sounds.

Calls to SPBSetDeviceInfo with siPlayThruOnOff to turn playthrough off while speech recognition is turned on was incorrectly causing all sound to be suppressed on 5200, 5300, 6200, and 6300 machines. This problem has been corrected.

Related Materials:

StdCLib 3.4.4

StdCLib is a shared library located in the ROM on all PowerPC-based Mac OS compatible computers providing functionality for programs compiled using the C language. StdCLib has been present on all PowerPC models, and prior to System 7.6 updates were provided via the StdCLibInit system extension. Mac OS 8 includes a new version of the StdCLib in the System file's data fork containing the following corrections:

Virtual Memory Manager

The Virtual Memory manager provides virtual memory services for the Mac OS. The following changes have been made in the Virtual Memory Manager:

Window Manager

The Window Manager is part of the Mac OS providing facilities for drawing and maintaining windows on the screen.

When Appearance is turned on, the Window Manager now ignores all entries in custom window color table ('wctb') resources except for the content color entry.

COMPATIBILITY NOTE
Developers should not make any assumptions regarding the shape or size of a window's structure region. Also, your application should not assume that the content region of a window has no border. To determine the shape and size of a window's border, calculate the difference between the content region and the structure region. For example, to calculate the height of the title bar for a window, following routine could be used:

/* TitleBarHeight -- height of the window's topmost border */ 
OSErr TitleBarHeight(WindowPtr theWindow, short *height) {
    RgnHandle structure, content;
    structure = content = NULL;
    if ((structure = NewRgn()) == NULL) goto bail;
    if ((content = NewRgn()) == NULL) goto bail;
    GetWindowStructureRgn(theWindow, structure);
    GetWindowContentRgn(theWindow, content);
    *height = (**content).rgnBBox.top - (**structure).rgnBBox.top;
    DisposeRgn(structure);
    DisposeRgn(content);
    return noErr;
bail:
    if (structure != NULL) DisposeRgn(structure);
    if (content != NULL) DisposeRgn(content);
    return memFullErr;
}
 

Related Materials:

WorldScript Power Adaptor 7.5.3

The Worldscript Power Adaptor provides language specific text services for the Mac OS.

The Worldscript Power Adaptor has been moved to the System file. It is no longer provided as a separate extension. If the extension is found in the extensions folder it will be moved to the "Extensions (disabled)" folder at system startup time.

Related Materials:


Apple Menu Items

Items in the Apple Menu Items folder appear in the Apple Menu. Files of type 'APPD' are auto-routed to the Apple Menu Items folder when they are dropped into the System Folder's icon.

Apple System Profiler 1.2

The Apple System Profiler provides a simple way to obtain information regarding the current system configuration. Information provided by the Profiler is useful for customer support representatives in assisting users.

Connect To... 1.0

Connect To... is a new small AppleScript applet allowing for quick access to an internet URL. URLs are dispatched through the Internet Config extension.

Stickies 1.0.3

A new version of the Stickies utility featuring a few cosmetic and implementation improvements.

SimpleSound 1.0

A new addition to the Apple Menu Items folder, SimpleSound allows for simple convenient access to sounds installed in the System file.


Control Panels

Control Panels provide user interface facilities for custom configuration of the system. Files of type 'APPC' are auto-routed to the Control Panels folder when they are dropped onto the System Folder's icon. Also, starting with Mac OS 7.6, files of type 'APPC' may contain 'INIT' resources that will be executed at system startup time.

Control panels may contain system extensions. For such a system extension to be active, the control panel must be located in the Control Panels folder when the system starts up. Extensions within control panels are not loaded if the shift key is held down while the system is starting up.

In Mac OS 8, many of the standard control panels have been revised to support the new Apple platinum Appearance, and some of the file types and creator codes for control panels have been changed.

Appearance 1.0

The Appearance control panel provides user interface configuration facilities for the appearance of graphical user interface elements throughout the system. It replaces both the older Color and WindowShade control panels and provides a super-set of the features that were provided by these items.

Related Materials:

Apple Menu Options 1.1.3

The Apple Menu Options control panel provides user interface configuration facilities for the appearance and behavior of the Apple Menu. There are some corrections present in this implementation of the Apple Menu Options control panel.

AutoRemounter 1.2.5

The AutoRemounter control panel provides facilities for re-mounting network volumes on portable Mac OS compatible computers after waking the machine from sleep state.

This version has been updated to support changes in AppleShare authentication techniques.

Desktop Pictures 1.0

Desktop Pictures replaces the Desktop Patterns control panel. Desktop Pictures allows the user to configure the desktop to be drawn using an image stored in a picture file. Unlike the older Desktop Patterns control panel, Desktop Pictures uses stand-alone image files to retrieve image data rather than resources.

COMPATIBILITY NOTE
The first time Desktop Pictures runs, it reads in any existing Desktop Patterns from the Desktop Patterns control panel's preferences file (if this file exists in the Preferences folder). After saving the original patterns in it's own preferences file, Desktop Pictures moves the old preferences file to the trash.

Extensions Manager 4.0.1

The new Extensions Manager control panel provides user interface facilities for users to configure components of the system software that are installed at system startup time. The following have been corrected in the Extensions Manager control panel:

File Sharing 8.0

This control panel allows for the configuration of various settings related to sharing files and linking applications over a network. The new File Sharing control panel replaces both the older Sharing Setup and File Sharing Monitor control panels. The new File Sharing control panel has the following features:

General Controls 7.7

The General Controls control panel has been revised to support the new Appearance guidelines in both itself and the shutdown dialog.

Keyboard 8.0

       // an entry in the resource format
       struct ConfigEntry {
             SInt16 kchrID;
             UInt16 flags;
       };
       typedef struct ConfigEntry ConfigEntry;
       typedef ConfigEntry *ConfigEntryPtr;

       // the resource format
       struct KCHRConfig {
             SInt32 version;
             ConfigEntry kchrTable[kVariableLengthArray];
       };
       typedef struct KCHRConfig KCHRConfig;
       typedef KCHRConfig *KCHRConfigPtr, **KCHRConfigHandle;

       // bit numbers for the flags field
       enum {
             kKCHRInMenu  = 1,
             kDefaultKCHR = 2,
             kKCHRValid   = 4
       };

Location Manager 1.0.2

Apple Location Manager is a toolbox extension that allows mobile users to save and restore sets of configurations ("locations") under a single name. For example, a user can define a group of printers, network settings, and extension sets for multiple locations.

ALM is developer-extensible. Apple Location Manager modules appear in the "Location Manager Modules" folder in the System Folder.

Version 1.0.2 has been updated to be compatible with new features in Mac OS 8.

Related Materials:

Mac OS Easy Open

Mac OS Easy Open is a optional component of the operating system providing translation services for users opening documents in one application that have been created by other applications.

Memory 7.5.8

The Memory control panel provides user interface facilities for the configuration of virtual memory, RAM disk storage, and the size of the disk cache.

Monitors & Sound 1.3

The Monitors & Sound control panel originally provided user interface services for configuring and adjusting various settings for AppleVision monitors attached to the computer. In addition, the Monitors & Sound control panel now provides services formerly provided by the Monitors control panel and the Sound control panel.

COMPATIBILITY NOTE
On systems where a video or sound device cannot be accessed using the Monitors & Sound control panel, use the Monitors control panel or the Sound control panel instead. These older control panels are installed in the Apple Extras folder in the root directory. Unless these older control panels are specifically required, the new unified Monitors & Sound control panel should be used.

Startup Disk 7.6.1

The Startup Disk control panel provides user interface facilities for choosing the disk that will be used to run the computer the next time it starts up.

Users and Groups 8.0

This control panel provides facilities for the specification and configuration of user names and passwords for people who are able to establish network connections with the computer. The following changes are present in the Users and Groups control panel:

Web Sharing 1.1

Web Sharing provides facilities for users to configure and set up the "Web Sharing" folder on their computer to act as a World Wide Web site. Web Sharing allows users to publish documents on an intranet or the Internet. Documents placed in the Web Sharing folder will be available to other users by using means of any web browsers available on any platform. Web Sharing provides the following facilities:


System Extensions

System extensions are located in the Extensions folder inside the System Folder. For a system extension to be active, it must be located in the Extensions folder when the system starts up. Extensions are not loaded if the shift key is held down while the system is starting up.

Appearance Extension 1.0

The Appearance Extension implements the Appearance Manager, which extends the facilities provided by the Control Manager, the Dialog Manager, the Menu Manager, and the Window Manager to provide the Apple platinum Appearance to existing and new graphical elements of the Mac OS environment.

IMPORTANT: The Appearance Extension will be loaded at system startup if it is in the Extensions (Disabled) folder. Mac OS 8 will not boot if this file is removed from the System Folder hierarchy.

Appearance Manager introduces several extensions to the toolbox APIs. Developers should refer to the Appearance Manager documentation and SDK regarding these new API's for further details.

Related Materials:

Apple CD-ROM 5.4

The Apple CD-ROM driver contains some enhancements for support of new Apple products and corrects some problems found in previous versions of the driver.

COMPATIBILITY NOTE
Non-Apple CD drives are no longer supported by the Apple CD-ROM driver.

Related Materials:

Apple Guide 2.2.1

Apple Guide provides system-wide instructional online help services for nearly every aspect of the Mac OS user experience. It is extensible in many ways so developers are able to provide Guide help files for their own applications and utilities. This release of Apple Guide delivers speed improvements and corrections over previous versions. Changes and notes of interest to developers are as follows:

AppleScript 1.1.2

AppleScript is a component of the operating system that provides a scripting interface for users to automate actions that would normally require use of the menus and keyboard, but even more importantly allows users to access functionality ofapplications which would be difficult or impossible to access by hand. As described below, this new version of AppleScript includes some corrections and enhancements that improve its operation with Mac OS 8.

Special enhancements for Mac OS 8:

Other Enhancements:

AppleShare Workstation Client 3.7.1

AppleShare Workstation Client provides file sharing services for the Finder and applications on Mac OS-compatible computers networked with file servers.

COMPATIBILITY NOTE
AppleShare Workstation Client 3.7.1 can be used with versions of Mac OS including 7.5.3 and later.

Color Picker 2.1

The Color Picker Extension provides standard user interface facilities for selecting colors. The new ColorPicker offers the following new features and corrections:

COMPATIBILITY NOTE
ColorPicker 2.1 is compatible with System 7.5 and later.

Contextual Menu Extension 1.0

This extension implements the Contextual Menu Manager. Contextual Menus is a new element of the Mac OS user interface experience providing menus associating a set of relevant commands with a particular location on the screen. Contextual menus are activated by a control-click.

Finder 8 utilizes the facilities provided by the Contextual Menu Manager.

Related Materials:

FireWire 1.0

FireWire 1.0 is Apple's Mac OS support for the IEEE 1394 High Performance Serial Bus standard. This extension adds services to the Mac OS that support the use of third-party FireWire hardware and software.

Mac OS 8 ships with the FireWire 1.0 extension.

Mac OS Runtime for Java™ 1.0.2

Mac OS Runtime for Java™ (MRJ) is Apple's implementation of the Java runtime environment. MRJ allows Java functionality to be embedded in Mac OS applications, and applications using MRJ's JManager API are able to run Java applets and applications.

OpenDoc™ 1.2.1

OpenDoc is the Mac OS implementation of the OpenDoc open, multi-platform architecture for component software.

Open Transport 1.2

OpenTransport is the only supported networking technology for Mac OS 8.

Open Transport/PPP 1.0.1

Open Transport/PPP provides Point to Point Protocol connection services for users connecting to the internet via modem.

COMPATIBILITY NOTE
Open Transport/PPP configuration information is stored in the file "Remote Access Connections" in the folder "...System Folder:Preferences:Remote Access:". Users transferring configuration files from older system installations will want to copy this file.

WARNING:
ARA Client 2.1 must not be installed over the Open Transport/PPP (OT/PPP) installation included with Mac OS 8. Installing the ARA Client 2.1 after installing OT/PPP will replace the OT/PPP Modem Files which can cause connection problems for Open Transport/PPP. However, it is perfectly safe to install OT/PPP after having installed the ARA Client 2.1.

Related Materials:

QuickTime™ 2.5

QuickTime provides various multimedia services for the Mac OS including the ability to display movies and facilities for the translation and display of various audio and visual data file formats.

QuickTime™ MPEG Extension 1.0

This extension provides MPEG media handling services for QuickTime.

QuickTime™ Musical Instruments Extension 2.5

This extension provides a selection of musical instrument synthesizers available for use in QuickTime.

QuickTime™ VR 2.0

QuickTimeVR provides standard components and API entry points usable for the display and management of virtual reality panoramas.

QuickDraw 3D 1.5 1

QuickDraw 3D provides 3D drawing services for the Mac OS.

QuickDraw GX 1.1.6

QuickDraw GX provides advanced graphics and typographic services for the Mac OS.


COMPATIBILITY NOTE
GX printing and GX printer drivers are no longer supported in Mac OS 8. GX Printing or older versions of GX will be removed during installation.

Related Materials:

Speech Manager 1.5

The Speech Manager provides services for the translation of text into audible speech.

Text Encoding Converter 1.2


Apple Extras

Cyberdog 2.0

Cyberdog is an application and a set of OpenDoc components which provide access to Internet and intranet services including the World Wide Web, email, file servers, and more. Updated software developer packages and documents describing Cyberdog features available to developers are available at the Cyberdog web site.

Apple Remote Access Client 2.1

The Apple Remote Access (ARA) Client allows users to dial in and connect to AppleTalk networks from remote locations.

Mac OS 8 ships with Apple Remote Access Client 2.1.

WARNING:
ARA Client 2.1 must not be installed over the Open Transport/PPP (OT/PPP) installation included with Mac OS 8. Installing the ARA Client 2.1 after installing OT/PPP will replace the OT/PPP Modem Files which can cause connection problems for Open Transport/PPP. However, it is perfectly safe to install OT/PPP after having installed the ARA Client 2.1.

Related Materials:


Assistants

The Assistants folder, located at the root level on the system disk, contains assistant applications used to assist the user in configuring software.

Mac OS Setup Assistant 1.0

Mac OS Setup Assistant is an addition to the Mac OS installation/startup user experience designed to unify the various options and preferences, making system configuration easier by presenting these options in the form of an interview. During installation, an alias to the Mac OS Setup Assistant application is placed inside the Startup Items folder so that it will launch the first time the Mac OS is booted after a Mac OS installation. This alias is deleted once Mac OS Setup Assistant is run for the fist time. The assistant helps the user through several aspects of configuration, all of which can be accomplished (or overridden) through various control panels and standard system configuration dialogs.

The following is a list of the areas Mac OS Setup Assistant configures:


Apple Developer Utilities

Mac OS 8 requires updated copies of the following Apple Developer Utilities:

MacsBug 6.5.4

MacsBug is Apple's low level debugger providing interface facilities for the dissasembly and perusal of assembler and machine level instructions.

COMPATIBILITY NOTE
MacsBug 6.5.4 or later should be used with Mac OS 8. Versions of MacsBug earlier than 6.5.4 will not work with Mac OS 8.

Related Materials:

System Picker 1.1

System Picker is an Apple utility providing facilities for switching the active system between different system folders installed on a Mac OS compatible computer.


Items no longer supported

Color control panel

The Color control panel has been removed from the control panels folder as its functionality has been replaced by the Appearance control panel.

Desktop Patterns control panel

The Desktop Patterns control panel has been removed from the control panels folder as its functionality has been replaced by the Desktop Pictures control panel. The utility patterns feature of the Desktop Patterns control panel is no longer supported ( In Mac OS 7.5.x and 7.6.x holding down the option key in the Desktop Patterns control panel would allow you to set the pattern used in in utilities such as the Calculator desk accessory, or the Key Caps utility, et al.).

File Sharing Monitor control panel

Functionality formerly found in this control panel has been moved to the File Sharing control panel.

Finder Extensions

Files known as "Finder Extensions" are no longer supported. These items include: the Network Extension, the Clipping Extension, the Catalogs Extension, the Mailbox Extension, the Mail Folders Extension, the Finder Scripting Extension, the PC Card Extension, and the Desktop Printer Extension. The functionality found in most of these extensions has been built directly into the new Finder.

QuickDraw GX Printing

QuickDraw GX Printing is no longer supported. No GX Printer drivers or printing extensions will work with Mac OS 8.

Labels control panel

The Labels control panel has been removed. Its functionality has been incorporated into the preferences dialog in Finder.

Sharing Setup control panel

Functionality formerly found in this control panel has been moved to the File Sharing control panel.

Views control panel

The Views control panel has been removed. Its functionality has been incorporated into the new "Finder Preferences" and "View Options" dialogs in Finder.

Window Shade control panel

The Window Shade control panel has been removed. Its functionality has been incorporated into the Appearance Manager. Configuration facilities formerly provided by this control panel are now provided by the Appearance control panel.


Downloadables

Acrobat version of this Note (245K).


Acknowledgments

Special thanks to Robert T Bowers, Pete Gontier, Arno Gourdol, Tim Holmes, Barb Kozlowski, Jim Luther, David A. Lyons, Tim Maroney, Tom Maughan, Patrick McClaughry, Eric Schlegel, and Tim Swihart.

And, thanks to Sharon Autrey, Andy Bachorski, Steve Bollinger, Mark Day, Sherman Dickman, Mike Dilts, Kathryn Donahue, Cameron Esfahani, Chris Espinosa, Sharon Everson, Steve Falkenburg, Mark Fernandes, Peri Frantz, Nitin Ganatra, Kory Hansen, C.K. Haun, Siobhan Hearne, Brad Hochberg, Hidetomo Katsura, Ingrid Kelly, Nick Kledzik, Michael J. Kobb, Kevin Kono, Barry Langdon-Lassagne, Xavier De Leon, Alan Lillich, Greg Loose, Peter Lowe, Kieran McKeown, Martin Minow, Rob Neville, Andy Nicholas, Tanya Okmyansky, Guillermo A. Ortiz, Quinn "The Eskimo!", Greg Robbins, Jim Rodden, Stuart Russell, Joseph Sickel, Keith Stattenfield, Tali Tamir, Bob Wambaugh, George Warner, Jason Watts, and Karen Wenzel.

To contact us, please use the Contact Us page.
Updated: 29-March-99


Technotes
Previous Technote | Next Technote | Contents